package xyz.mumuwei.youthcourseserver.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import xyz.mumuwei.youthcourseserver.common.dto.PageDto;
import xyz.mumuwei.youthcourseserver.pojo.CourseTime;
import xyz.mumuwei.youthcourseserver.pojo.StudentCourse;

import java.util.List;

/**
 * @author mumuwei
 * @since 2022-02-19
 */
@Mapper
public interface StudentCourseMapper extends BaseMapper<StudentCourse> {

    /**
     * 根据学生账户id 课程id获取课程课时
     * 包含选课信息
     * @param uid 学生账户id
     * @param courseId 课程名
     * @return 课程课时列表
     */
    List<CourseTime> getCourseClassTimeListByCourseId(Integer uid, Integer courseId);

    /**
     * 根据学生id和课程课时id 检查学生是否已购买该门课程
     * @param studentId 学生id
     * @param classTimeId 课程课时id
     * @return 存在条数
     */
    CourseTime checkStudentBuyCourseByClassTime(Integer studentId, Integer classTimeId);

    /**
     * 根据课程Id和课时id获取学生预约课程的课时列表(不分页)
     * @param courseId 课程id
     * @param classTimeId 课时id
     * @return 预约列表
     */
    List<StudentCourse> getReserveListByCourseId(Integer courseId, Integer classTimeId);

    /**
     * 根据课程Id和课时id获取学生预约课程的课时列表(分页)
     * @param pageDto 分页信息 current表示课程id id表示课程课时id
     * @return 预约列表
     */
    List<StudentCourse> getReservePageByCourseId(PageDto pageDto);
}
